package com.enjava.web;



import java.util.Date;

import javax.persistence.EntityManager;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.enjava.Alumno;
import com.enjava.Comentario;
import com.enjava.FichaUsuario;
import com.enjava.EMF;
import com.enjava.Usuario;

@Controller()
@Scope(value="request")
public class Controlador {
	

	@Autowired
	EMF emf;
	@Autowired
	FichaUsuario fichaUsuario;
	@Autowired
	ServicioChat miServicioChat;
	@Autowired
	Usuario usuario;
	
    @RequestMapping(value="/helloW/nombre={nombre}")
    public String helloWorld(@PathVariable String nombre, Model model) {
    	Alumno alumno=new Alumno();
    	alumno.setNombre(nombre);
    	EntityManager em = emf.getEM();
    	em.getTransaction().begin();
    	em.persist(alumno);
    	em.getTransaction().commit();
        model.addAttribute("message", "Hello World!"+alumno);
        fichaUsuario.setNombre(alumno.getNombre());        
        
        return "helloWorld";
    }
    @RequestMapping(value="/helloW")
    public String helloWorld( Model model) {
    	model.addAttribute("message", "Hello World!"+fichaUsuario.getNombre());
    	return "helloWorld";
    }

    @RequestMapping(value="/Chat")
    public String Chat( Model model) {
    	usuario = miServicioChat.inyectarUsuario();
    	model.addAttribute("mensajes", miServicioChat.dameComentarios());    	
    	return "Chat";
    }
    
    @RequestMapping(value = "/nuevoMensaje", method = RequestMethod.POST)
    public String recibePOST(@RequestParam("nuevoMensaje") String comentario,Model model) {
    	EntityManager em = emf.getEM();
    	em.getTransaction().begin();
    	em.persist(new Comentario(comentario,new Date("2012/01/01"),usuario));
    	em.getTransaction().commit();
    	
    model.addAttribute("mensajes",miServicioChat.dameComentarios());	
    return "Chat";
    }
}
